package com.offcn.controller;


import com.offcn.pojo.Checkgroup;
import com.offcn.service.CheckgroupService;
import com.offcn.utils.PageResult;
import com.offcn.utils.QueryPageBean;
import com.offcn.utils.Result;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author xinyi
 * @since 2021-07-14
 */
@RestController
@RequestMapping("/checkgroup")
public class CheckgroupController {

    @Reference
    private CheckgroupService checkgroupService;

    /*checkgroup.html页面里分页查询的方法*/
    @RequestMapping("/checkGroup")/*@RequestBody接收json数据*/
    public PageResult checkItem(@RequestBody QueryPageBean queryPageBean){
        return checkgroupService.checkGroup(queryPageBean);
    }

    /*checkgroup.html页面里面的添加检查组方法，需要传要修改的检查组数据和，选中的检查项Integer类型的数组id*/
    @RequestMapping("/addCheckGroup")
    public Result addCheckGroup(@RequestBody Checkgroup checkgroup,Integer[] checkitemIds){
        return checkgroupService.addCheckGroup(checkgroup,checkitemIds);
    }

    /*chegroup.html页面里的编辑检查组方法，先根据id回显主表数据再发送一个回显中间表数据请求*/
    @RequestMapping("/getCheckGroupById/{id}")
    public Checkgroup getCheckGroupById(@PathVariable("id") Integer id){
        return checkgroupService.getCheckGroupById(id);
    }

    /*checkgroup.html页面里的编辑检查组方法，在已经回显数据的基础上进行修改，再将选中的检查项都放到一个数组里进行参数传递*/
    @RequestMapping("/editCheckGroup")
    public Result editCheckGroup(@RequestBody Checkgroup checkgroup,Integer[] checkitemIds){
        return checkgroupService.editCheckGroup(checkgroup,checkitemIds);
    }

    /*checkgroup.html页面里的删除组方法，根据row.id进行行数据的删除,需要先删除中间表，再删主表*/
    @RequestMapping("/deleteCheckGroupId/{id}")
    public Result deleteCheckGroupId(@PathVariable("id") Integer id){
        return checkgroupService.deleteCheckGroupId(id);
    }

    /*setmeal.html页面里的添加前需要先回显所有的检查组*/
    @RequestMapping("/getAllCheckGroup")
    public List<Checkgroup> getAllCheckGroup(){
        return checkgroupService.getAllCheckGroup();
    }

    /*setmeal.html页面里的编辑前需要先回显所有的检查组*/
    @RequestMapping("/getCheckgroups")
    public List<Checkgroup> getCheckgroups(){
        return checkgroupService.getCheckgroups();
    }

    /*setmeal.html页面里的编辑找到选中的检查根据id项进行数据回显这个id是row.id,也就是中间表的的行id*/
    @RequestMapping("/getCheckgroupsByGroupById")
    public List<Integer> getCheckgroupsByGroupById(Integer id){
        return checkgroupService.getCheckgroupsByGroupById(id);
    }


}

